package job;

/**
* Represente les caractristiques d'une piece pour un jeu de Tetris
* @author Laurent et Flav
*/
public class Piece {
	/** La rotation courante */
	private RotPiece curRot;
	/**
	* Constructeur
	* @param curRot la rotation courante rattaché à la piece
	*/
	public Piece(RotPiece curRot) {
		this.curRot = curRot;
	}
	/**
	* Constructeur par copie
	* @param p une piece
	*/
	public Piece(Piece p) {
		this.curRot = p.getCurRot();
	}
	
	/** Retourne le block a la position x,y */
	public Block getBlock(int x, int y) {
		return curRot.getBlock(x, y);
	}
	
	/** retourn la rotation courante */
	public RotPiece getCurRot() {
		return curRot;
	}
	/** effectue la rotation suivante */
	public void nextRot() {
		curRot = curRot.getNextRot();
	}
	/** effectue la rotation precedante */
	public void prevRot() {
		curRot = curRot.getPrevRot();
	}
	
	/** Y a t'il un block a la position x,y ? */
	public boolean isEmpty(int x, int y) {
		return curRot.isEmpty(x, y);
	}
	
	/**
	* Choisi une rotation al�atoire
	*/
	public void randRot() {
		int randInt = (int)(Math.random() * 4);
		for(int i=0; i<=randInt; i++) {
			curRot = curRot.getNextRot();
		}
	}
}
